namespace go kernel
namespace java com.ydche.idl_output
namespace py idl_output

exception RequestException{
    1: optional string code;
    2: optional string msg;
}

struct InsuranceUnitInfo{
    1: optional string insuranceCorpName;
    2: optional string insuranceCorpCode;
    3: optional string insuranceCorpId;
    4: optional string insuranceCorpPhotUrl;
}

struct RiskInfo{
    1: optional string riskCode;
    2: optional string riskName;
    3: optional string insuredAmount;
    4: optional string flag;
}

struct CoverageInfo {
    1: optional string coverageCode;
    2: optional string coverageName;
    3: optional string insuredAmount;
    4: optional string flag;
    5: optional string insuredPremium;
    6: optional string amount;
}

struct QuoteResult{
    1: optional string insurerCode;
    2: optional string channelCode;
    3: optional string thpBizID;
    4: optional string bizID;
    5: optional string biBeginDate;
    6: optional string biPremium;
    7: optional string rebates;
    8: optional list<CoverageInfo> coverageList;
    9: optional string integral;
    10: optional string ciBeginDate;
    11: optional string ciPremium;
    12: optional string carshipTax;
    13: optional string spAgreement;
    14: optional string cIntegral;
    15: optional string bIntegral;
    16: optional string showCiCost;
    17: optional string showBiCost;
    18: optional string showSumIntegral;
    19: optional string bjCodeFlag;
}

struct InsuranceResult{
    1: optional string insurerCode;
    2: optional string biBeginDate;
    3: optional string ciBeginDate;
    4: optional list<CoverageInfo> coverageList;
}

struct ImgUploadResult{
    1: optional string url;
    2: optional string status;
}

struct AnalyzingResult{
    1: optional string licenseNo;
    2: optional string fileNumber;
    3: optional string seat;
    4: optional string curbWeight;
    5: optional string totalMass;
    6: optional string overallSize;
    7: optional string vehicleTpye;
    8: optional string owner;
    9: optional string address;
    10: optional string useCharacter;
    11: optional string brandName;
    12: optional string frameNo;
    13: optional string engineNo;
    14: optional string firstRegisterDate;
    15: optional string issueDate;
}

struct BrandInfo{
    1: optional string vehicleFgwCode;
    2: optional string brandCode;
    3: optional string brandName;
    4: optional string engineDesc;
    5: optional string familyName;
    6: optional string gearboxType;
    7: optional string remark;
    8: optional string importFlag;
    9: optional string newCarPrice;
    10: optional string purchasePriceTax;
    11: optional string price;
    12: optional string seat;
    13: optional string standardName;
}

struct VehicleInfo{
    1: optional string vehicleFgwCode;
    2: optional string vehicleFgwName;
    3: optional string parentVehName;
	4: optional string brandCode;
	5: optional string brandName;
	6: optional string engineDesc;
	7: optional string familyName;
	8: optional string gearboxType;
	9: optional string remark;
	10: optional string newCarPrice;
	11: optional string purchasePriceTax;
	12: optional string importFlag;
	13: optional string purchasePrice;
	14: optional string seat;
	15: optional string cityCode;
	16: optional string standardName;
	17: optional string vin;
	18: optional string engineNo;
	19: optional string registerDate;
	20: optional string isTrans;
	21: optional string transDate;
	22: optional string licenseNo;
	23: optional string CtCode;
}

struct CarInfo{
    1: optional string licenseNo;
    2: optional string frameNo;
    3: optional string engineNo;
    4: optional string firstRegisterDate;
}

struct CarInfoParm {
    1: optional string licenseNo;
    2: optional string frameNo;
    3: optional string vehicleFgwCode;
    4: optional string brandCode;
    5: optional string modelCode;
    6: optional string brandName;
    7: optional string engineNo;
    8: optional string isTrans;
    9: optional string transDate;
    10: optional string registerDate;
    11: optional string sourceCertificateNo;
    12: optional string seat;
}

struct PersonInfo{
    1: optional string insuranceCode;
    2: optional string ownerName;
    3: optional string ownerId;
    4: optional string ownerMobile;
    5: optional string insuredName;
    6: optional string insuredId;
    7: optional string insuredMobile;
    8: optional string applicantName;
    9: optional string applicantID;
    10: optional string applicantMobile;
}

struct AccurateQuoteParm{
    1: optional string applicationID;
    2: optional string cityCode;
    3: optional string biBeginDate;
    4: optional string ciBeginDate;
    5: optional string insurerCode;
    6: optional CarInfoParm carInfo;
    7: optional PersonInfo personInfo;
    8: optional list<CoverageInfo> coverageList;
}

struct SimulateQuoteParm{
    1: optional string applicationID;
    2: optional string cityCode;
    3: optional string biBeginDate;
    4: optional string ciBeginDate;
    5: optional string insurerCode;
    6: optional CarInfoParm carInfo;
    7: optional list<CoverageInfo> coverageList;
}

struct AddressInfoParm{
    1: optional string addresseeName;
    2: optional string addresseeDetails;
    3: optional string addresseeCounty;
    4: optional string addresseeCity;
    5: optional string addresseeProvince;
    6: optional string addresseeMobile;
    7: optional string policyEmail;
}

struct ReinsurParm{
	1: optional string applicationID;
	2: optional string insurerCode;
	3: optional string bizID;
	4: optional string applicantUrl
	5: optional AddressInfoParm addressInfo;
}

struct ZtImageParm{
    1: optional string kindType;
    2: optional string imgUrl;
    3: optional string imgBase64;
}
struct ZtUploadParm{
    1: optional string applicationID;
    2: optional string bizId;
    3: optional string channelCode;
    4: optional list<ZtImageParm> imgList;
}

struct CarInfoByLicenseResp{
    1: optional string state;
    2: optional string msg;
    3: optional CarInfo carInfo;
    4: optional list<VehicleInfo> vehicleList;
}

struct CarInfoByVinResp{
    1: optional string state;
    2: optional string msg;
    3: optional CarInfo carInfo;
}

struct FuzzyCarBrandResp{
    1: optional string state;
    2: optional string msg;
    3: optional list<BrandInfo> brandList;
}

struct CarModelResp{
    1: optional string state;
    2: optional string msg;
    3: optional list<BrandInfo> brandList;
}

struct PayLinkResp{
    1: optional string state;
    2: optional string msg;
    3: optional string url;
    4: optional string bizId;
}

struct AnalyzingResp{
    1: optional string state;
    2: optional string msg;
    3: optional AnalyzingResult result;
}

struct ImgUploadResp{
    1: optional string state;
    2: optional string msg;
    3: optional list<ImgUploadResult> uploadResult;
}

struct ReinsurResp{
    1: optional string state;
    2: optional string msg;
    3: optional string msgCode;
    4: optional string sendTime;
    5: optional string bizID;
    6: optional string biProposalNo;
    7: optional string ciProposalNo;
    9: optional string synchFlag;
    10: optional string bjCodeFlag;
    11: optional string payLink;
    12: optional string uploadType;
}

struct InsuranceResp{
    1: optional string state;
    2: optional string msg;
    3: optional InsuranceResult insuranceInfo;
}

struct RiskResp{
    1: optional string state;
    2: optional string msg;
    3: optional list<RiskInfo> riskList;
}

struct SupportInsuranceResp{
    1: optional string state;
    2: optional string msg;
    3: optional list<InsuranceUnitInfo> unitInfoList;
}

struct AccurateQuoteResp{
    1: optional string state;
    2: optional string msg;
    3: optional list<QuoteResult> data;
}

//dao_rpc
struct CarRawInfo {
    1: optional i32 id;
    2: optional string license_no;
    3: optional string vin_no;
    4: optional string engine_no;
    5: optional string model;
    6: optional string brand;
    7: optional string register_date;
    8: optional string owner_name;
    9: optional string owner_code;
    10: optional string owner_mobile;
    11: optional string trans_date;
    12: optional string is_trans;
    13: optional string brand_code;
    14: optional string address;
    15: optional string bi_date;
}

struct CarInsuranceInfo {
    1: optional i32 id;
    2: optional string LicenseNo;
    3: optional string FrameNo;
    4: optional string EngineNo;
    5: optional string BiOrderNumber;
    6: optional string CiOrderNumber;
    7: optional string BiDate;
    8: optional string CiDate;
    9: optional string InsuranceUnit;
    10: optional string InsuranceContent;
}

struct InsuranceTypes {
    1: optional i32 id;
    2: optional string code;
    3: optional string type_name;
    4: optional string amount_range;
    5: optional string description;
    6: optional i32 status;
}

struct InsuranceUnit {
    1: optional i32 id;
    2: optional string unit_code;
    3: optional string unit_name;
    4: optional string interface_count;
    5: optional string status;
    6: optional string create_date;
    7: optional string valid_time;
    8: optional string applicationID;
    9: optional string thpBizID;
    10: optional string sign;
    11: optional string comment;
    12: optional string logoURL;
    13: optional string joinStatus;
    14: optional string insure_type;
}

struct OpenOrderKernel {
    1: optional i32 id;
	2: optional string biPremium;
	3: optional string ciPremium;
	4: optional string carshipTax;
	5: optional string totalCost;
	6: optional string payAmount;
	7: optional string orderTime;
	8: optional string biProposalNo;
	9: optional string ciProposalNo;
	10: optional string serviceNo;
	11: optional i32 status;
	12: optional i32 payState;
	13: optional string rebates;
	14: optional string appId;
	15: optional string msg;
	16: optional i32 commissionStatus;
}

struct OpenInsuranceKernel {
    1: optional i32 id;
    2: optional string ciStartDate;
    3: optional string biStartDate;
    4: optional string biPolicyNo;
    5: optional string ciPolicyNo;
    6: optional string insureCode;
    7: optional string insureCity;
    8: optional string ownerName;
    9: optional string ownerId;
    10: optional string ownerMobile;
    11: optional string vinNo;
    12: optional string engineNo;
    13: optional string model;
    14: optional string licenseNo;
    15: optional string registerDate;
    16: optional i32 isTrans;
    17: optional string trans;
    18: optional string content;
    19: optional string insuredInfo;
    20: optional string policyholder;
    21: optional string addresseeName;
    22: optional string addresseeMobile;
    23: optional string addresseeProvince;
    24: optional string addresseeCity;
    25: optional string addresseeCounty;
    26: optional string addresseeDetails;
    27: optional string expressNo;
    28: optional string expressCompanyName;
    29: optional i32 t_open_order_id;
}

struct ReceiverInfo {
	1: optional string AddresseeName;
	2: optional string AddresseeDetails;
	3: optional string AddresseeCounty;
	4: optional string AddresseeCity;
	5: optional string AddresseeProvince;
	6: optional string AddresseeMobile;
	7: optional string PolicyEmail;
}

struct InsuranceTypesList {
    1: optional string riskCode;
    2: optional string riskName;
    3: optional string insuredAmount;
    4: optional string status;
    5: optional string insuranceCode;
    6: optional string insurTypeCode;
}

struct UserProfile {
    1: optional i32 id,
    2: optional string user_name,
    3: optional string pwd,
    4: optional i32 type_id,
    5: optional string register_time,
    6: optional bool is_admin,
    7: optional bool is_enabled,
    8: optional bool is_locked,
    9: optional string mobile,
    10: optional string phone,
    11: optional string email,
    12: optional string tag,
    13: optional i32 point,
    14: optional string rank,
    15: optional i32 is_unit,
    16: optional string photo_url,
    17: optional string wenxin,
    18: optional string QQ,
    19: optional string blog,
    20: optional string alias_name,
    21: optional i32 IsRealName,
    22: optional i32 IsInfoReady,
    23: optional i32 default_unit_id,
    24: optional string pinyincode,
    25: optional i32 onelevel_count,
    26: optional i32 twolevel_count,
    27: optional i32 threelevel_count,
    28: optional i32 owner_id,
    29: optional string owner_mobile,
}

struct UserRole {
     1: optional i32 id,
     2: optional i32 role_id,
     3: optional i32 user_id,
}

struct Account {
    1: optional i32 id,
    2: optional i32 user_id,
    3: optional i32 unit_id,
    4: optional double balance,
    5: optional double cash,
    6: optional string bank_card1,
    7: optional i32 bank1_code,
    8: optional string bank_card2,
    9: optional i32 bank2_code,
    10: optional string bank_card3,
    11: optional i32 bank3_code,
    12: optional string pay_password,
    13: optional i32 isLocked,
    14: optional string bank_card1_img_url,
    15: optional string bank_card2_img_url,
    16: optional string bank_card3_img_url,
}

struct CarTypesDB{
    1: optional i32 id,
    2: optional string typeName,
    3: optional string vehicleFgwCode,
    4: optional string brandCode,
    5: optional string brandName,
    6: optional string engineDesc,
    7: optional string familyName,
    8: optional string gearboxType,
    9: optional string remark,
    10: optional string newCarPrice,
    11: optional string purchasePriceTax,
    12: optional string importFlag,
    13: optional string purchasePrice,
    14: optional string sear,
    15: optional string standardName,
    16: optional string msg,
}


struct CarProfileDB{
    1: optional i32 id,
    2: optional i32 ownerId,
    3: optional i8 noLicenseFlag,
    4: optional string licenseNo,
    5: optional string cityPlate,
    6: optional string vehicleFrameNo,
    7: optional string engineNo,
    8: optional i32 vehicleModelId,
    9: optional string configModel,
    10: optional string registerDate,
    11: optional i8 isLoanCar,
    12: optional i8 specialCarFlag,
    13: optional string specialCarDate,
    14: optional string vehicleInvoiceNo,
    15: optional string vehicleInvoiceDate,
    16: optional i8 status,
    17: optional i32 districtCode,
    18: optional i32 cityCode,
    19: optional i32 stateCode,
    20: optional i32 countryCode,
    21: optional string latitude,
    22: optional string longitude,
    23: optional string createTime,
    24: optional string lastUpdateDatetime,
    25: optional i32 createUserId,
    26: optional string description,
    27: optional string licenseNoImgURL,
    28: optional string drivingLicenseImgURL,
    29: optional string issueLicenseDate,
    30: optional string commEndDate,
    31: optional string compulsoryEndDate,
    32: optional string drivingLicenseImgBackURL,
}


struct CustomerInfoDB {
    1: optional i32 id,
    2: optional i32 user_id,
    3: optional string customer_name,
    4: optional string doc_code,
    5: optional i32 doc_type_id,
    6: optional string driverNum,
    7: optional string drivateDate,
    8: optional i32 isImmevalid,
    9: optional bool is_enabled,
    10: optional bool is_locked,
    11: optional string mobile,
    12: optional string phone,
    13: optional string email,
    14: optional i32 point,
    15: optional string rank,
    16: optional i32 car_insurance_id,
    17: optional i32 owner_id,
    18: optional string create_date,
    19: optional string lastupdateddateTime,
    20: optional string photo_url,
    21: optional string wenxin,
    22: optional string QQ,
    23: optional string blog,
    24: optional string alias_name,
    25: optional i32 IsRealName,
    26: optional string tag,
    27: optional i32 receive_rec_id,
    28: optional string pinyincode,
    29: optional string province,
    30: optional string city,
    31: optional string county,
    32: optional i32 gender,
    33: optional string birthday,
    34: optional string identity_front_url,
    35: optional string identity_back_url,
}


struct InsuranceQueryListDB{
    1: optional i64 id,
    2: optional i64 carId,
    3: optional i32 insUnitId,
    4: optional i64 customerId,
    5: optional i64 userId,
    6: optional string packageType,
    7: optional bool isValid,
    8: optional string totalCost,
    9: optional i32 cityId,
    10: optional i32 districtId,
    11: optional string queryTime,
    12: optional string biProposalNo,
    13: optional string ciProposalNo,
    14: optional string ciBeginDate,
    15: optional string ciEndDate,
    16: optional string biBeginDate,
    17: optional string biEndDate,
    18: optional string qryServiceNo,
    19: optional string bizId,
    20: optional string source,
    21: optional string discount,
    22: optional i16 status,
    23: optional string errorMsg,
}

struct InsQryCostListDB{
    1: optional i32 id,
    2: optional i32 queryId,
    3: optional string cost,
    4: optional i32 insCatId,
    5: optional string warrantyCost,
}

struct CarInsuranceOrderDB{
    1: optional i64 id,
    2: optional i64 carId,
    3: optional i64 customerId,
    4: optional i64 userId,
    5: optional string packageType,
    6: optional bool isValid,
    7: optional string totalCost,
    8: optional string policyCode,
    9: optional i32 insUnitId,
    10: optional i32 cityId,
    11: optional i32 districtId,
    12: optional string orderTime,
    13: optional string biPolicyNo,
    14: optional string biProposalNo,
    15: optional string commStartDate,
    16: optional string commEndDate,
    17: optional string ciPolicyNo,
    18: optional string ciProposalNo,
    19: optional string compulsoryStartDate,
    20: optional string compulsoryEndDate,
    21: optional string content,
    22: optional i8 insSameOwnerFlag,
    23: optional i8 holderSameOwnerFlag,
    24: optional string qryServiceNo,
    25: optional string returnServiceNo,
    26: optional i32 status,
    27: optional string orderStartDate,
    28: optional string errorMsg,
    29: optional i64 receiverId,
    30: optional string addressee,
    31: optional string addresseeMobile,
    32: optional string addrDetail,
    33: optional string addrProvice,
    34: optional string addrCity,
    35: optional string addrDistrict,
    36: optional i8 commissionReturn,
    37: optional string payAmount,
    38: optional string insuranceInfoUrl,
}

struct OrderInfo{
    1: optional i64 orderId,
    2: optional string customerName,
    3: optional string totalCost,
    4: optional string insuranceUnitName,
    5: optional string insuranceUnitLogoUrl,
    6: optional string licenseNo,
    7: optional string orderTime,
    8: optional i32 orderStatus,
}

struct InsOrderCostDB{
    1: optional i64 id,
    2: optional i64 orderId,
    3: optional string cost,
    4: optional i32 insCarId,
    5: optional string warrantyCost,
}

struct LocationDB{
    1: optional i32 id,
    2: optional string name,
    3: optional string gbCode,
}


struct QuoteParmBiz{
    1: optional AccurateQuoteParm parm;
    2: optional string districtCode;
}

struct QuoteResultBiz{
    1: optional string insurerCode;
    2: optional string channelCode;
    3: optional string thpBizID;
    4: optional string bizID;
    5: optional string biBeginDate;
    6: optional string biPremium;
    7: optional string ciBeginDate;
    8: optional string ciPremium;
    9: optional string carshipTax;
    10: optional string rebates;
    11: optional list<CoverageInfo> coverageList;
}